package own.stu.jobgib.playown;

public class StringTest {

    public static void main(String[] args) {
        String a = new String("1") + new String("1");
        String b = "11";
        a.intern();
        System.out.println(a == b);


        String a2 = new String("2") + new String("2");
        // jkd7 之后，没有了perm区（字符串常量放置的区域），而是将字符串常量池从perm区移到了 heap区。实际的数据结构是map,链表处理冲突
        // a2在堆中创建了对象11，在调用了intern方法后，会将该对象放在heap区的字符串常量池中，因此heap中的和字符串常量池中的11对象是同一个。
        // b2 = "22",是直接获取perm中的（没有得时候，才会创建），因此结果是true;
        a2.intern();
        String b2 = "22";
        System.out.println(a2 == b2);
    }
}
